//基于 Promises，代码更加简洁和易读。
// 更好的错误处理机制：只在网络错误（如无法连接服务器）时返回 catch，而非状态码错误。
// 支持多种数据格式（JSON、文本、二进制等）。
// 可以处理跨域请求，通过 CORS 机制配置。
fetch('https://www.qweather.com/v2/search?lng=undefined&lat=undefined')
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json(); // 解析JSON格式的响应体
    })
    .then(data => console.log(data)) // 处理解析后的数据
    .catch(error => console.error('There was a problem with the fetch operation:', error));


//使用async和await的方式
async function fetchData() {
    try {
        const response = await fetch('https://www.qweather.com/v2/search?lng=undefined&lat=undefined');
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        const data = await response.json();
        console.log(data);
    } catch (error) {
        console.error('There was a problem with the fetch operation:',error);
    }
}

// fetchData();

//基本get请求
fetch('https://www.qweather.com/v2/search?lng=undefined&lat=undefined')
    .then(response => response.json())
    .then(data => console.log(data+'get'))
    .catch(error => console.error('Error:', error));

//基本post请求
fetch('https://www.qweather.com/v2/search?lng=undefined&lat=undefined', {
    method: 'POST', // 指定请求方法
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({  //这里的是post的数据，在请求体 body 中发送 JSON 格式的数据。
        key: 'value'
    })
})
    .then(response => response)
    .then(data => console.log(data+'post'))
    .catch(error => console.error('Error:', error));